INSERT INTO 语句
发表于 2018-3-5 20:40:17 | 分类于 SQL |
INSERT INTO 语句
INSERT INTO 语句用于向表中插入新记录。
语法
INSERT INTO 语句可以有两种编写形式。
第一种形式无需指定要插入数据的列名,只需提供被插入的值即可:
INSERT INTO table_name
VALUES (value1,value2,value3,...);
第二种形式需要指定列名及被插入的值:
INSERT INTO table_name (column1,column2,column3,...)
VALUES (value1,value2,value3,...);
示例
样本数据库与 SELECT 语句 一章相同。
INSERT INTO 示例
向 "Websites" 表中插入一个新行。
INSERT INTO Websites (name, url, alexa, country)
VALUES ('百度','https://www.baidu.com/','4','CN');
输出结果:
mysql> INSERT INTO Websites (name, url, alexa, country)
-> VALUES ('百度','https://www.baidu.com/','4','CN');
+----+--------------+---------------------------+-------+---------+
| id | name | url | alexa | country |
+----+--------------+---------------------------+-------+---------+
| 1 | Google | https://www.google.cm/ | 1 | USA |
| 2 | 淘宝 | https://www.taobao.com/ | 13 | CN |
| 3 | 菜鸟教程 | http://www.runoob.com/ | 4689 | CN |
| 4 | 微博 | http://weibo.com/ | 20 | CN |
| 5 | Facebook | https://www.facebook.com/ | 3 | USA |
| 6 | 百度 |https://www.baidu.com/ | 4 | CN |
+----+--------------+---------------------------+-------+---------+
注意 这里没有向 id 字段插入任何数字,id 列是自动更新的,表中的每条记录都有一个唯一的数字。
在指定的列插入数据
可以在指定的列插入数据。
下面的 SQL 语句将插入一个新行,但是只在 "name"、"url" 和 "country" 列插入数据(id 字段会自动更新):
INSERT INTO Websites (name, url, country)
VALUES ('stackoverflow', 'http://stackoverflow.com/', 'IND');
输出结果:
mysql> INSERT INTO Websites (name, url, country)
-> VALUES ('stackoverflow', 'http://stackoverflow.com/', 'IND');
+----+-----------------+---------------------------+-------+---------+
| id | name | url | alexa | country |
+----+-----------------+---------------------------+-------+---------+
| 1 | Google | https://www.google.cm/ | 1 | USA |
| 2 | 淘宝 | https://www.taobao.com/ | 13 | CN |
| 3 | 菜鸟教程 | http://www.runoob.com/ | 4689 | CN |
| 4 | 微博 | http://weibo.com/ | 20 | CN |
| 5 | Facebook | https://www.facebook.com/ | 3 | USA |
| 6 | 百度 |https://www.baidu.com/ | 4 | CN |
| 7 | stackoverflow |http://stackoverflow.com/ | 0 | IND |
+----+--------------+---------------------------+-------+---------+
更多
插入部分行补充
如果表的定义允许,则可以在INSERT操作中省略某些列。
省略的列必须满足以下某个条件:
- 该列定义为允许 NULL 值(无值或空值)。
- 在表定义中给出默认值。这表示如果不给出值,将使用默认值。
- 如果对表中不允许 NULL 值,且没有默认值的列不给出值,DBMS 将产生错误消息,并且相应的行插入不成功。